using UnityEngine;

namespace UbiArt.ITF {
	[Games(GameFlags.RL | GameFlags.RA)]
	public partial class RO2_BabyPiranhaAIComponent_Template : AIComponent_Template {
		public float speed;
		public float detectionRange;
		public float attackRange;
		public float attackTime;
		public float attackCooldown;
		public float idlePercent;
		public float attackJumpPercent;
		public float attackDivePercent;
		public float idlePerturbation;
		public float attackPerturbation;
		public float attackStartTime;
		public float escapeDst;
		public float escapeTime;
		public uint hitLevel;
		public float bounceMultiplier;
		public bool onlyAttackTargetInWater;
		public float idleRadiusMin;
		public float idleRadiusMax;
		public float idleSpeedMin;
		public float idleSpeedMax;
		public float inertia;
		public float xLimitMultiplier;
		public float desyncRatio;
		public float minJumpTime;
		public float maxJumpTime;
		public float minJumpDst;
		public float maxJumpDst;
		public float minDiveTime;
		public float maxDiveTime;
		public float minDiveDst;
		public float maxDiveDst;
		public float minSpeed;
		public float maxSpeed;
		public float insideLen;
		public float attackSlowDown;
		public float dstFromSurface;
		public float pertubationFrequence;
		public float perturbationRadiusRatio;
		public float fruitInfluenceDistMin;
		public float fruitInfluenceDistMax;
		public float speedFractionWhenNearFruit;
		public float pirahnaRadius;
		public bool canGoInsideWater;
		public uint numPiranhas;
		public AABB genBox;
		protected override void SerializeImpl(CSerializerObject s) {
			base.SerializeImpl(s);
			speed = s.Serialize<float>(speed, name: "speed");
			detectionRange = s.Serialize<float>(detectionRange, name: "detectionRange");
			attackRange = s.Serialize<float>(attackRange, name: "attackRange");
			attackTime = s.Serialize<float>(attackTime, name: "attackTime");
			attackCooldown = s.Serialize<float>(attackCooldown, name: "attackCooldown");
			idlePercent = s.Serialize<float>(idlePercent, name: "idlePercent");
			attackJumpPercent = s.Serialize<float>(attackJumpPercent, name: "attackJumpPercent");
			attackDivePercent = s.Serialize<float>(attackDivePercent, name: "attackDivePercent");
			idlePerturbation = s.Serialize<float>(idlePerturbation, name: "idlePerturbation");
			attackPerturbation = s.Serialize<float>(attackPerturbation, name: "attackPerturbation");
			attackStartTime = s.Serialize<float>(attackStartTime, name: "attackStartTime");
			escapeDst = s.Serialize<float>(escapeDst, name: "escapeDst");
			escapeTime = s.Serialize<float>(escapeTime, name: "escapeTime");
			hitLevel = s.Serialize<uint>(hitLevel, name: "hitLevel");
			bounceMultiplier = s.Serialize<float>(bounceMultiplier, name: "bounceMultiplier");
			onlyAttackTargetInWater = s.Serialize<bool>(onlyAttackTargetInWater, name: "onlyAttackTargetInWater");
			idleRadiusMin = s.Serialize<float>(idleRadiusMin, name: "idleRadiusMin");
			idleRadiusMax = s.Serialize<float>(idleRadiusMax, name: "idleRadiusMax");
			idleSpeedMin = s.Serialize<float>(idleSpeedMin, name: "idleSpeedMin");
			idleSpeedMax = s.Serialize<float>(idleSpeedMax, name: "idleSpeedMax");
			inertia = s.Serialize<float>(inertia, name: "inertia");
			xLimitMultiplier = s.Serialize<float>(xLimitMultiplier, name: "xLimitMultiplier");
			desyncRatio = s.Serialize<float>(desyncRatio, name: "desyncRatio");
			minJumpTime = s.Serialize<float>(minJumpTime, name: "minJumpTime");
			maxJumpTime = s.Serialize<float>(maxJumpTime, name: "maxJumpTime");
			minJumpDst = s.Serialize<float>(minJumpDst, name: "minJumpDst");
			maxJumpDst = s.Serialize<float>(maxJumpDst, name: "maxJumpDst");
			minDiveTime = s.Serialize<float>(minDiveTime, name: "minDiveTime");
			maxDiveTime = s.Serialize<float>(maxDiveTime, name: "maxDiveTime");
			minDiveDst = s.Serialize<float>(minDiveDst, name: "minDiveDst");
			maxDiveDst = s.Serialize<float>(maxDiveDst, name: "maxDiveDst");
			minSpeed = s.Serialize<float>(minSpeed, name: "minSpeed");
			maxSpeed = s.Serialize<float>(maxSpeed, name: "maxSpeed");
			insideLen = s.Serialize<float>(insideLen, name: "insideLen");
			attackSlowDown = s.Serialize<float>(attackSlowDown, name: "attackSlowDown");
			dstFromSurface = s.Serialize<float>(dstFromSurface, name: "dstFromSurface");
			pertubationFrequence = s.Serialize<float>(pertubationFrequence, name: "pertubationFrequence");
			perturbationRadiusRatio = s.Serialize<float>(perturbationRadiusRatio, name: "perturbationRadiusRatio");
			fruitInfluenceDistMin = s.Serialize<float>(fruitInfluenceDistMin, name: "fruitInfluenceDistMin");
			fruitInfluenceDistMax = s.Serialize<float>(fruitInfluenceDistMax, name: "fruitInfluenceDistMax");
			speedFractionWhenNearFruit = s.Serialize<float>(speedFractionWhenNearFruit, name: "speedFractionWhenNearFruit");
			pirahnaRadius = s.Serialize<float>(pirahnaRadius, name: "pirahnaRadius");
			canGoInsideWater = s.Serialize<bool>(canGoInsideWater, name: "canGoInsideWater");
			numPiranhas = s.Serialize<uint>(numPiranhas, name: "numPiranhas");
			genBox = s.SerializeObject<AABB>(genBox, name: "genBox");
		}
		public override uint? ClassCRC => 0x2653993B;
	}
}

